package com.hzw.saas.web.hbox.param;

import java.io.Serializable;
import javax.validation.constraints.NotBlank;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @author zzl
 * @since 02/26/2021
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel("HBox查询资源参数")
public class HBoxFolderGetParam implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 存储空间ID
     * 特殊：10 个人空间 20 回收空间
     */
    @ApiModelProperty(value = "空间ID, 10-个人，20-共享", position = 1, required = true)
    @NotBlank(message = "空间ID不可为空")
    private String spaceId;

    /**
     * 目录ID
     * 特殊：0或空值指定根目录
     */
    @ApiModelProperty(value = "目录ID, 特殊：0-根目录", position = 2, required = true)
    @NotBlank(message = "目录ID不可为空")
    private String folderId;

    /**
     * 资源状态
     */
    @ApiModelProperty(value = "资源状态，200-正常，300-回收，不传递此属性会获取所有状态", position = 3)
    private Integer status;

    /**
     * 子目录层级
     * -1或空 获取所有子目录和文件,默认
     * 0 获取目录自身信息
     * 1 获取目录自身与1级子目录和文件信息
     * 2 获取目录自身与1-2级子目录和文件信息
     * ...
     */
    @ApiModelProperty(value = "子目录层级,-1或空 获取所有子目录和文件,默认,0 获取目录自身信息,1 获取目录自身与1级子目录和文件信息,以此类推", position = 4)
    private Integer pathLevel;
}
